Reducing Memory Failures in Integrated Circuits

ABSTRACT

Memory reliability is improved by using redundancy to repair errors detected by ECC. In one embodiment, redundancy repairs errors which cannot be corrected by ECC. The redundancy can employ the use of electronic fuses, enabling repairs after an IC containing the memory is packaged. Redundancy can also be performed prior to packaging of the IC.

BACKGROUND OF INVENTION

[0001] Non-volatile memory cells, such as ferroelectric memory cells, are used in semiconductor memory devices. Such ferroelectric memory cells employ the use of ferroelectric metal oxide ceramic materials, such as lead zirconate titanate (PZT). Other types of ferroelectric material, such as Strontium-bismuth-tantalate (SBT) or lead-lanthanum-zirconium-titanate (PLZT) may also be used. FIG. 1 shows a ferroelectric memory cell 105 having a transistor 130 and a ferroelectric capacitor 140. A capacitor electrode 142 is coupled to a plateline 170 and another capacitor electrode 141 is coupled to the transistor which selectively couples or decouples the capacitor from a bitline 160, depending on the state (active or inactive) of a wordline 150 coupled to the transistor gate. A plurality of memory cells are interconnected by wordlines, bitlines, and plateline(s). Support circuitry is provided to facilitate access to the memory cells.

[0002] The ferroelectric memory stores information in the capacitor as remanent polarization. The logic value stored in the memory cell depends on the polarization of the ferroelectric capacitor. To change the polarization of the capacitor, a voltage which is greater than the switching voltage (coercive voltage) needs to be applied across its electrodes. An advantage of the ferroelectric capacitor is that it retains its polarization state after power is removed, resulting in a non-volatile memory cell.

[0003] The memory cells can be accessed by, for example, a processor to retrieve information (e.g., data word). The width of the data word depends on the memory architecture. For example, the width of the word can equal to 4 bits. Other data word lengths can also be useful. When a data word is accessed, errors may occur. For example, 1 bit of the data word can be erroneous due to a defective memory cell. To avoid or reduce the probability of a system failure due to defective memory cells, error correction codes (ECC) or techniques are employed. ECC techniques detect and correct, if possible, errors in a data word. The number of erroneous bits in a data word which can be corrected depends on the error correction technique employed.

[0004] As can be seen, ECC can enhance the operational reliability by correcting errors in a data word. However, in the event that the number of errors in a data word exceed the capabilities of a particular ECC, a system failure would occur. For example, for ECC capable of repairing one bit, a second failing bit within the accessed data word would lead to a total failure.

[0005] From the foregoing discussion, it is desirable to avoid or reduce failures caused by memory errors in ICs.

SUMMARY OF INVENTION

[0006] The invention relates to improving reliability of memory. More particularly, the invention relates to improving reliability using error correction and redundancy. In one embodiment, a method of improving memory reliability comprises retrieving a data word from memory. Error correction code is used to determine if the data word contains any errors or not. If the data word contains an error, memory redundancy is used to repair at least the memory cell corresponding to the error. In one embodiment, redundancy is used if the data word contains an error which cannot be corrected by error correction code.

BRIEF DESCRIPTION OF DRAWINGS

[0007]FIG. 1 shows a ferroelectric memory cell;

[0008]FIG. 2 shows a group of ferroelectric memory cells arranged in a series architecture;

[0009]FIG. 3 shows a redundancy block in accordance with one embodiment of the invention; and

[0010]FIG. 4 shows a process for reducing memory failures in accordance with one embodiment of the invention.

DETAILED DESCRIPTION

[0011] The invention relates to reducing memory failures. The invention can be applicable to, for example, various types of processing systems. A system can include, for example, a processor which accesses one or more memory ICs. Alternatively, the processor and the memory array can be integrated into a single IC, such as a system on a chip (SOC). one embodiment, the memory array can include volatile or non-volatile memory cells.

[0012] In one embodiment, the memory array comprises non-volatile memory cells. Other types of memory cells are also useful. Preferably, the nonvolatile memory cells are ferroelectric memory cells, such as those described in FIG. 1. The memory cells can be arranged in a folded or open bitline architecture. Other types of memory architectures, such as series architectures, are also useful. Series architectures are described in, for example, US patent titled “Semiconductor Memory Device and Various Systems Mounting Them”, U.S. Pat. No. 5,903,492, filed on Jun. 10, 1997,which is herein incorporated by reference for all purposes.

[0013] Referring to FIG. 2, a group 203 of memory cells 205 is arranged in a series architecture. The memory cells of the group, each comprising a transistor 230 coupled to a capacitor 240 in parallel, are coupled in series. One end 209 of a group is coupled to a bitline 250 via, for example, a select transistor 238 while the other end 208 is coupled to a plateline 270. The gates of the transistors are coupled to respective wordlines.

[0014] To form an array, a plurality of cell groups are interconnected by wordlines, bitlines and plateline(s). The array can be divided into blocks or subarrays. The bitlines are coupled to a sense amplifier circuit to facilitate memory accesses (e.g., reads and writes). Generally, a pair of bitlines is coupled to a sense amplifier, forming a column in the array. The array can be configured to output the number of bits equal to a data word. Other array architectures or configurations are also useful.

[0015] As previously described, ECC is used to enhance reliability of memory by correcting errors detected in a retrieved data word. However, when ECC capabilities are exceeded (e.g., number of erroneous bits in the data word exceeds the number of erroneous bits correctable by ECC), a failure occurs. A parity bit can be employed to determine when ECC capabilities are exceeded. Other techniques for determining when ECC capabilities are exceeded can also be used. In accordance with one embodiment of the invention, ECC capabilities are extended by the use of redundancy to repair defective memory cells.

[0016] In one embodiment of the invention, a redundancy unit is provided, for example, in the IC. The redundancy unit is preferably associated with a memory array. For memory architectures in which the array is divided into blocks, the redundancy unit can be used to repair defects in all the blocks. Alternatively, a redundancy unit can be associated with each block or some of the blocks. For memory ICs, it is preferable that each IC includes its own redundancy unit. Providing redundancy at the system level can also be useful. The redundancy unit repairs defective memory cells at addresses corresponding to errors identified by ECC. Preferably, the redundancy unit repairs defective memory cells at addresses corresponding to errors identified by ECC but could not be corrected by ECC. Repairing of defective memory cells can be achieved before or after packaging of the IC.

[0017]FIG. 3 shows a redundancy block 304 used for redundancy in accordance with one embodiment of the invention. As shown, the redundant block comprises at least one redundant element 320. Preferably, the redundant unit comprises a plurality of redundant elements 320 a-h. The number of redundant elements, for example, depends of design specification and requirements. Typically, the number of redundancy elements is about 4-6% of the size of the memory. Other number of redundant elements is also useful. Preferably, the number of redundant elements is selected to meet design specifications or requirements. A redundant element can comprise a plurality of memory cells for row and/or column redundancy. The memory cells of the redundant elements preferably are of the type as those they are intended to replace (e.g., same type of memory cells as the main array). The granularity of the redundant element can be chosen to accommodate design needs. For example, a redundant element can be designed to replace a group of rows, columns, or cells. The redundant element can also be designed to replace a single memory cell.

[0018] Typically, the memory array is separated into memory elements corresponding to the redundant elements. When a defect occurs in a memory element, it is replaced with a redundant element. Each redundant element is associated with a fuse block 332 from a fuse bank 330. As used herein, a redundant element and associated fuse block is referred to as a “redundancy unit”. A fuse block includes a plurality of fuses to facilitate redundancy. The use of fuses to facilitate redundancy is described in, for example, Taylor et al., IEEE JSSC, Vol. SC-20, No. 5 (October, 1985), which is herein incorporated by reference for all purposes. The fuses are programmed with the address of the defective memory element which is to be replaced by the redundant element.

[0019]FIG. 4 shows a process for reducing memory failures in accordance with one embodiment of the invention. In one embodiment, requestor initiates a read operation to the memory array at step 410. The requester, for example, comprises a processor which is performing a desired process. The process, for example, is a process executed during normal operation of the processor. Alternatively, the process could be a self-test performed using a built in self-test module. Other types of processes, such as self-test performed, for example, during start up or in test mode can also be useful. The requestor and memory array can be integrated into a single chip, such as a SOC. Alternatively, the requestor and memory array are interconnected by buses. They can be located on the same or on different circuit boards. Other types of arrangements are also useful.

[0020] When a read is initiated, a read address is generated. The read address is decoded by, for example, support circuitry associated with the memory array. A word of data corresponding to the decoded read address is output from the memory array. At step 420, the read data is checked using ECC techniques to determine whether an error has occurred. The error can be caused by, for example, one or more defective memory cells associated with the read address. In one embodiment, the ECC is performed by an ECC module. The ECC module, for example, is part of the support circuitry or function of the memory array or memory IC. Providing an ECC module which is part of the process or processing system is also useful.

[0021] In one embodiment, the ECC comprises Hamming Code. Other ECC techniques, such as Reed-Solomon or Viterbi codes are also useful. The error correction capabilities of the ECC depend on the particular type of ECC employed. For example, the ECC can be designed to correct for a single-bit error in the data word. Implementing an ECC which can correct for double-bit or other number of bit error can also be useful. The ECC can be implemented in hardware, software, or a combination of both.

[0022] When no error is detected by the ECC, the read data is provided to the requestor at step 490. On the other hand, if an error is detected (e.g., parity bit is set), ECC determines whether the error can be corrected at step 440. If the error in the data word can be corrected, it is corrected by ECC. The corrected data word is then provided to, for example, the requester.

[0023] In the event that the error cannot be corrected by ECC, the requestor checks the redundancy block if redundant elements are available to repair defective cell or cells associated with the read address at step 460. Checking the redundancy block can be achieved by initiating logic or circuitry which determines the availability of redundancy elements. If no redundant element is available, a system failure would be indicated at step 480.

[0024] On the other hand, if redundant elements are available, the defective cells are replaced with redundant element or elements in step 470. Various techniques for redundancy to repair the defective cells can be employed. For example, column redundancy can be employed to replace the defective word. Alternatively, bitwise replacement can also be useful. After the defective word or cells are successfully replaced, the system is reset at step 474 and resumes operation at step 476. Thus, by using redundancy, ECC can be extended to avoid system failures.

[0025] In another embodiment, repairing defective memory cells can also be performed, even if the error is correctable. Preferably, the correctable errors are not intermittent errors (e.g., caused by alfa-particles) but permanent errors (e.g., caused by defective memory cells). Permanent errors can be determined by, for example, tracking error addresses. If errors consistently occur at a particular address, this would indicate that the error is caused by a defective cell. Correcting correctable errors can be advantageous since overhead associated with error correction can be avoided, thus improving performance. However, this may require the use of greater number of redundant elements which increases chip size.

[0026] As described, the use of ECC and redundancy can reduce memory failures after the IC is packaged. To facilitate redundancy after packaging of IC, the electronic fuses are used. Various types of electronic fuses can be employed. For example, electronic fuses formed from ferroelectric or non-volatile memory cells are useful. Preferably, if non-volatile memory cells are used in the array, the fuses are formed from the same type of non-volatile memory cells. Other types of electronic fuses, such as anti-fuses, are also useful. Alternatively, hybrid type fuse blocks which include both electronic and laser type fuses can be used. Such hybrid fuses are described in, for example, US patent application titled “Improved Ferroelectric Memory Architecture”, U.S. Ser. No. 10/065,125, filed on Sep. 19, 2002, which is herein incorporated by reference for all purposes.

[0027] Repairing defective memory cells can also be performed at the wafer level (e.g., prior to packaging) using the process described in FIG. 4. For example, the memory array can be tested with ECC prior to packaging. Testing can be achieved using, for example, testers. The ECC should have the same or lower capabilities than the ECC used in normal operation. Preferably, the ECC used in wafer testing should be the same as that used in normal operation. When repairing defective memory cells prior to packaging, laser fuses can be used for the programming the redundant elements. Electronic, hybrids, or a combination of electronic, hybrids, and/or laser fuses are also useful. In another embodiment, repairs can be performed at the wafer level and after packaging. The redundancy block can include a combination of laser, electronic and/or hybrid fuses.

[0028] While the invention has been particularly shown and described with reference to various embodiments, it will be recognized by those skilled in the art that modifications and changes may be made to the present invention without departing from the spirit and scope thereof. The of the invention should therefore be determined not with reference to the above description but with reference to the appended claims along with their full scope of equivalents. 

1. A method of reducing memory failures comprising: retrieving a data word of information from memory corresponding to a memory address; determining whether the data word contains an error using an error correction code; and repairing at least a memory cell corresponding to the error in the data word using memory redundancy.
 2. The method according to claim 1 wherein the memory comprises ferroelectric memory cells.
 3. The method according to claim 2 wherein repairing is performed if error correction fails to correct the error in the data word.
 4. The method according to claim 1 wherein the memory comprises memory cells arranged in a folded bitline, open bitline, open-folded bitline, or series architecture.
 5. The method according to claim 4 wherein repairing is performed if error correction fails to correct the error in the data word.
 6. The method according to claim 3 wherein the memory comprises ferroelectric memory cells.
 7. The method according to claim 6 wherein repairing is performed if error correction fails to correct the error in the data word.
 8. The method according to claim 1 wherein repairing is performed if error correction fails to correct the error in the data word.
 9. The method according to claim 1 wherein retrieving the data word comprises a read operation.
 10. The method according to claim 9 wherein the redundancy comprises a redundancy block including at least one redundancy unit, a redundancy unit having a redundancy element with memory associated with a fuse block, the fuse block comprising fuses for programming an address associated with the error.
 11. The method according to claim 10 wherein the fuse block comprises electronic fuses.
 12. The method according to claim 11 wherein the electronic fuses comprises ferroelectric memory cells.
 13. The method according to claim 9 wherein the fuse block comprises a hybrid fuse block having a first subfuse block comprising electronic fuses and a second subfuse block comprising laser-blowable fuses.
 14. The method according to claim 13 wherein the electronic fuses comprises ferroelectric memory cells.
 15. The method according to claim 9 wherein the fuse block comprises laser-blowable fuses.
 16. The method according to claim 9 wherein retrieving the data word comprises testing memory prior to packaging an integrated circuit which includes the memory.
 17. The method according to claim 16 wherein the redundancy comprises a redundancy block including at least one redundancy unit, a redundancy unit having a redundancy element with memory associated with a fuse block, the fuse block comprising fuses for programming an address associated with the error.
 18. The method according to claim 17 wherein the fuse block comprises electronic fuses.
 19. The method according to claim 18 wherein the electronic fuses comprises ferroelectric memory cells.
 20. The method according to claim 16 wherein the fuse block comprises a hybrid fuse block having a first subfuse block comprising electronic fuses and a second subfuse block comprising laser-blowable fuses.
 21. The method according to claim 17 wherein the electronic fuses comprises ferroelectric memory cells.
 22. The method according to claim 16 wherein the fuse block comprises laser-blowable fuses.
 23. The method according to claim 9 wherein retrieving the data word comprises a read operation during normal operation of an integrated circuit which includes the memory.
 24. The method according to claim 23 wherein the redundancy comprises a redundancy block including at least one redundancy unit, a redundancy unit having a redundancy element with memory associated with a fuse block, the fuse block comprising fuses for programming an address associated with the error.
 25. The method according to claim 24 wherein the fuse block comprises electronic fuses.
 26. The method according to claim 25 wherein the electronic fuses comprises ferroelectric memory cells.
 27. The method according to claim 24 wherein the fuse block comprises a hybrid fuse block having a first subfuse block comprising electronic fuses and a second subfuse block comprising laser-blowable fuses.
 28. The method according to claim 27 wherein the electronic fuses comprises ferroelectric memory cells. 